import http from './httpRequest'

/**
 *  封装 API 请求函数
 * @returns 验证码
 */
export const getValidateCode = () => {
  return http.post('/auth/validate-code/create');
};
/**
 * 登录
 * @param {*} userPin 账号
 * @param {*} userPwd 密码
 * @param {*} validateCodeKey  验证码的标识/密钥
 * @param {*} validateCodeVal 验证码的值
 * @param {*} loginEncryptKey 登录加密密钥
 * @returns 
 */
// 将十六进制字符串转换为整数
function hexToInt(hex) {
  return parseInt(hex, 16);
}

// XOR 加密函数
function xorEncrypt(input, xorValue) {
  let result = '';
  for (let i = 0; i < input.length; i++) {
    result += String.fromCharCode(input.charCodeAt(i) ^ xorValue);
  }
  return result;
}

export const login = (userPin, userPwd, validateCodeKey, validateCodeVal, loginEncryptKey) => {
  // 对密码进行加密
  const xorKey = hexToInt(loginEncryptKey);
   // 对用户输入的密码进行 XOR 操作
   const encryptedPwd = xorEncrypt(userPwd, xorKey);  // 进行 XOR 加密
  return http.post('/auth/login', {
    userPin,
    userPwd: encryptedPwd,
    validateCodeKey,
    validateCodeVal
  });
};
